home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 October / Chip Ekim 2003.iso / prog / web / xtreeme / setup.exe / {app} / Assistant / assistant.js next >
Encoding:
Text File  |  2003-04-29  |  4.1 KB  |  212 lines

  1. var privValue = '~privValue~';
  2.  
  3. function replaceAll (str, src, trg)
  4. {
  5.     var s = str;
  6.     var start = 0;
  7.     while(true)
  8.     {
  9.         var ind = s.indexOf(src, start);
  10.         if (ind == -1)
  11.         {
  12.             break;
  13.         }
  14.         s = s.substring (0, ind) + trg + s.substr (ind + src.length);
  15.         start = ind + trg.length;
  16.     }
  17.     return s;
  18. }
  19.  
  20. function GetNormalValue (name)
  21. {
  22.     var val=document.forms[0].elements[name].value;
  23.     return val;
  24. }
  25.  
  26. function SetNormalValue (name, val)
  27. {
  28.     var el = document.forms[0].elements[name];
  29.     if (el) el.value = val;
  30. }
  31.  
  32. function GetCheckValue (name)
  33. {
  34.     var val=document.forms[0].elements[name].checked;
  35.     return val;
  36. }
  37.  
  38. function SetCheckValue (name, val)
  39. {
  40.     var el = document.forms[0].elements[name];
  41.     if (el) el.checked = (val == 'true') ? 'true' : '';
  42. }
  43.  
  44. function GetRadioValue (name)
  45. {
  46.     var ar=document.forms[0].elements[name];
  47.     var i;
  48.     for(i=0;i<ar.length;i++)
  49.     {
  50.         if(ar[i].checked) return i;
  51.     }
  52.     return null;
  53. }
  54.  
  55. function SetRadioValue (name, val)
  56. {
  57.     var ar=document.forms[0].elements[name];
  58.     var i;
  59.     if (ar)
  60.     {
  61.         for(i=0;i<ar.length;i++)
  62.         {
  63.             ar [i].checked = (val == i) ? 'true' : '';
  64.         }
  65.     }
  66. }
  67.  
  68. function SetOption (name, val)
  69. {
  70.     var optionType = name.substr(0,1);
  71.     if (optionType == 'R')
  72.     {
  73.         return SetRadioValue (name, val);
  74.     }
  75.     else if (optionType == 'C')
  76.     {
  77.         return SetCheckValue (name, val);
  78.     }
  79.     else
  80.     {
  81.         return SetNormalValue (name, val);
  82.     }
  83. }
  84.  
  85. function GetOptionFromFormItem (optionName)
  86. {
  87.     var optionType = optionName.substr(0,1);
  88.     if (optionType == 'R')
  89.     {
  90.         return GetRadioValue (optionName);
  91.     }
  92.     else if (optionType == 'C')
  93.     {
  94.         return GetCheckValue (optionName);
  95.     }
  96.     else if (optionType == 'P')
  97.     {
  98.         return privValue;
  99.     }
  100.     else
  101.     {
  102.         return GetNormalValue (optionName);
  103.     }
  104.     return null;
  105. }
  106.  
  107. function GetOptionFromUrl (optionName)
  108. {
  109.     var ind = window.location.href.indexOf (optionName + '=');
  110.     var val = null;
  111.     if (ind != -1)
  112.     {
  113.         var optEnd = window.location.href.indexOf ('&', ind + optionName.length + 1);
  114.         if (optEnd == -1)
  115.         {
  116.             val = window.location.href.substr (ind + optionName.length + 1);
  117.         }
  118.         else
  119.         {
  120.             val = window.location.href.substring (ind + optionName.length + 1, optEnd);
  121.         }
  122.     }
  123.     if (val) val = replaceAll (val, '%5C', '\\')
  124.     return val;
  125. }
  126.  
  127. function FindAllFormItems ()
  128. {
  129.     var els = new Array;
  130.     var ar = document.forms[0].elements;
  131.     var i;
  132.     for(i=0;i<ar.length;i++)
  133.     {
  134.         if (ar [i].name)
  135.         {
  136.             els [els.length] = ar [i].name;
  137.         }
  138.     }
  139.     return els;
  140. }
  141.  
  142. function UrlToFormItems ()
  143. {
  144.     var els = FindAllFormItems ();
  145.     var i;
  146.     for (i = 0; i < els.length; i++)
  147.     {
  148.         var val = GetOptionFromUrl (els [i]);
  149.         if (val && val != privValue)
  150.         {
  151.             SetOption (els [i], val);
  152.         }
  153.     }
  154. }
  155.  
  156. function FormItemsToUrl (url)
  157. {
  158.     var queryString = url;
  159.     var els = FindAllFormItems ();
  160.     var i;
  161.     for (i = 0; i < els.length; i++)
  162.     {
  163.         var val = GetOptionFromFormItem (els [i]);
  164.         var prevValPos = queryString.indexOf (els [i] + '=');
  165.         if (prevValPos != -1)
  166.         {
  167.             var nextOption = queryString.indexOf ('&', prevValPos);
  168.             queryString = queryString.substr (0, prevValPos) + els [i] + '=' + val + ((nextOption != -1) ? queryString.substr (nextOption) : '');
  169.         }
  170.         else
  171.         {
  172.             queryString += ((queryString.indexOf ('?') == -1) ? '?' : '&') + els [i] + '=' + val;
  173.         }
  174.     }
  175.     return queryString;
  176. }
  177.  
  178. function ProcessOptions ()
  179. {
  180.     var queryStr = 'http://command/?processOptions=1';
  181.     queryStr = FormItemsToUrl (queryStr);
  182.     window.navigate(queryStr);
  183. }
  184.  
  185. function GotoStep (nStep)
  186. {
  187.     ProcessOptions ();
  188.     var queryStart = window.location.href.indexOf ('?');
  189.     var queryStr = (queryStart != -1 ? window.location.href.substr (queryStart) : '?v=0');
  190.     queryStr = FormItemsToUrl (queryStr);
  191.     var url = 'menu' + nStep + '.htm' + queryStr;
  192.     window.navigate(replaceAll (url, '\\', '%5C'));
  193. }
  194.  
  195. function Browse (ctl)
  196. {
  197.     window.navigate ('http://command/?browse=' + ctl);
  198. }
  199.  
  200. function BrowseDir (ctl)
  201. {
  202.     window.navigate ('http://command/?browseDir=' + ctl);
  203. }
  204.  
  205. function BrowseDone (pathAndCtl)
  206. {
  207.     var sep = pathAndCtl.indexOf('|');
  208.     var path = pathAndCtl.substr (0, sep);
  209.     var ctl = pathAndCtl.substr (sep + 1);
  210.     SetOption (ctl, path);
  211. }
  212.